
package com.crowdfunding.circle.project.entity;

import java.util.Date;

import org.apache.commons.lang3.StringUtils;

import com.crowdfunding.circle.sensitiveword.SensitiveWordUtils;

/**
 * 项目详情实体类
 *
 * @author 朱国军
 * @version 2016年07月03日 朱国军
 */
public class ProjectVO {
    
    /**  */
    private String projectId;
    
    /** 项目名称 */
    private String projectName;
    
    /** 平台名称 */
    private String platformName;
    
    /** 平台类型 */
    private Integer platformType;
    
    /** 平台类型显示名称 */
    private String platformTypeName;
    
    /** 平台省份 */
    private String platformProvince;
    
    /** 平台城市 */
    private String platformCity;
    
    /** 平台详细地址 */
    private String platformAddress;
    
    /** 平台链接 */
    private String platformUrl;

    /** 拆解数量 */
    private Integer analyzeNum;
    
    /** 发布人 */
    private String publishUser;
    
    /** 创建时间 */
    private Date createTime;
    
    /** 更新时间 */
    private Date updateTime;
    
    /** 状态：0默认，1管理员删除，2用户删除 */
    private Integer dataStatus;
    
    /**
     * 设置
     *
     * @param projectId
     */
    public void setProjectId(String projectId) {
        this.projectId = projectId;
    }
    
    /**
     * 获取
     *
     * @return
     */
    public String getProjectId() {
        return projectId;
    }
    
    /**
     * 设置项目名称
     *
     * @param projectName 项目名称
     */
    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }
    
    /**
     * 获取项目名称
     *
     * @return 项目名称
     */
    public String getProjectName() {
        return projectName;
    }
    
    /**
     * 设置平台名称
     *
     * @param platformName 平台名称
     */
    public void setPlatformName(String platformName) {
        this.platformName = platformName;
    }
    
    /**
     * 获取平台名称
     *
     * @return 平台名称
     */
    public String getPlatformName() {
        return platformName;
    }
    
    /**
     * 设置平台类型
     *
     * @param platformType 平台类型
     */
    public void setPlatformType(Integer platformType) {
        this.platformType = platformType;
    }
    
    /**
     * 获取平台类型
     *
     * @return 平台类型
     */
    public Integer getPlatformType() {
        return platformType;
    }
    
    /**
     * 获取平台类型显示名称
     *
     * @return 平台类型显示名称
     */
    public String getPlatformTypeName() {
        return platformTypeName;
    }
    
    /**
     * 设置 平台类型显示名称
     *
     * @param platformTypeName 平台类型显示名称
     */
    public void setPlatformTypeName(String platformTypeName) {
        this.platformTypeName = platformTypeName;
    }
    
    /**
     * 设置平台省份
     *
     * @param platformProvince 平台省份
     */
    public void setPlatformProvince(String platformProvince) {
        this.platformProvince = platformProvince;
    }
    
    /**
     * 获取平台省份
     *
     * @return 平台省份
     */
    public String getPlatformProvince() {
        return platformProvince;
    }
    
    /**
     * 设置平台城市
     *
     * @param platformCity 平台城市
     */
    public void setPlatformCity(String platformCity) {
        this.platformCity = platformCity;
    }
    
    /**
     * 获取平台城市
     *
     * @return 平台城市
     */
    public String getPlatformCity() {
        return platformCity;
    }
    
    /**
     * 设置平台详细地址
     *
     * @param platformAddress 平台详细地址
     */
    public void setPlatformAddress(String platformAddress) {
        this.platformAddress = platformAddress;
    }
    
    /**
     * 获取平台详细地址
     *
     * @return 平台详细地址
     */
    public String getPlatformAddress() {
        return platformAddress;
    }
    
    /**
     * 设置平台链接
     *
     * @param platformUrl 平台链接
     */
    public void setPlatformUrl(String platformUrl) {
        this.platformUrl = platformUrl;
    }
    
    /**
     * 获取平台链接
     *
     * @return 平台链接
     */
    public String getPlatformUrl() {
        return platformUrl;
    }

    /**
     * 获取拆解数量
     *
     * @return 拆解数量
     */
    public Integer getAnalyzeNum() {
        return analyzeNum;
    }

    /**
     * 设置拆解数量
     *
     * @param analyzeNum 拆解数量
     */
    public void setAnalyzeNum(Integer analyzeNum) {
        this.analyzeNum = analyzeNum;
    }

    /**
     * 设置发布人
     *
     * @param publishUser 发布人
     */
    public void setPublishUser(String publishUser) {
        this.publishUser = publishUser;
    }
    
    /**
     * 获取发布人
     *
     * @return 发布人
     */
    public String getPublishUser() {
        return publishUser;
    }
    
    /**
     * 设置创建时间
     *
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    
    /**
     * 获取创建时间
     *
     * @return 创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }
    
    /**
     * 设置更新时间
     *
     * @param updateTime 更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    
    /**
     * 获取更新时间
     *
     * @return 更新时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }
    
    /**
     * 设置状态：0默认，1管理员删除，2用户删除
     *
     * @param dataStatus 状态：0默认，1管理员删除，2用户删除
     */
    public void setDataStatus(Integer dataStatus) {
        this.dataStatus = dataStatus;
    }
    
    /**
     * 获取状态：0默认，1管理员删除，2用户删除
     *
     * @return 状态：0默认，1管理员删除，2用户删除
     */
    public Integer getDataStatus() {
        return dataStatus;
    }
    
    /**
     * 检查字段长度是否超长，检查非空字段是否有值
     *
     * @return 检查提示信息，为null时表示检查通过
     */
    public String valid() {
        
        if (StringUtils.isNotBlank(projectName) && projectName.length() > 100) {
            return "项目名称值超长，允许输入的最大长度为：100字符";
        }
        
        if (SensitiveWordUtils.isContaintSensitiveWord(platformAddress, 1)) {
            return "平台详细地址中包含敏感词汇:" + SensitiveWordUtils.getSensitiveWord(platformAddress, 1) + "，请检查后再保存";
        }
        
        if (StringUtils.isNotBlank(platformUrl) && platformUrl.length() > 150) {
            return "平台链接值超长，允许输入的最大长度为：150字符";
        }
        
        return null;
    }
}
